4.8. Java EE Platform 在 Java EE 平台

    Jersey 支持使用Java EE 托管 bean 作为根资源类、子类提供者以及Application 子类。

    在下面的代码中,您可以找到一个 bean 的一个例子,使用受管 bean 拦截器定义为一个 JAX-RS bean 。bean 用于拦截方法调用资源 getIt():

    CDI bean 可以作为 Jersey 根资源类、子类提供者以及 Application 子类。提供者以及 Application 子类必是单例或应用程序作用域。

    下一个例子显示了一个使用 CDI bean 作为 JAX-RS 资源类。我们假设,CDI已经启用。该例子通过使用另一个 bean (MyOtherCdiBean)提供类型安全的依赖注入分开使用 CDI :

    以下示例包含一个无状态EJB本地接口用于 Jersey :

    注意

    请注意,Jersey 目前不支持 JAX-RS 应用程序打包成单独的 EJB 模块的部署(ejb-jars)。使用 EJB 作为 JAX-RS 资源, EJB 需要打包直接在 WAR 或 EAR 中包含至少一个 WAR 。这是确保 Servlet 容器初始化,对于 Jersey 运行时的引导是必要的.

    2.3.1中解释说,在 GlassFish 中你不需要添加任何特定的依赖 ,Jersey 已经打包在 GlassFish 。你只需要将 provided-scoped 依赖项添加到您的项目使能够编译它。在运行时,GlassFish 将确保您的应用程序能够访问 Jersey 库。

    因为 CDI 和 HK2 都使用相同的注入注释,Jersey 在某些情况下可以发生歧义,这可能导致严重的运行时的问题。获得更好的控制 Jersey 评估 HK2注入,终端用户可以利用新引进的 ,SPI。请参阅有关 javadoc 得到详细信息在应用程序中如何使用 SPI 。

    WebLogic 12.1.2及早期版本,只支持 JAX-RS 1.1 (JSR 311) 的 Jersey 1.x (WebLogic 12.1.2附带 Jersey 1.13)。更新 Jersey 1.x 的版本 在早些时候这些 WebLogic 服务器版本,请参阅 在WebLogic RESTful Web服务开发指南。

    在WebLogic 12.1.3,附带 Jersey 1.18 作为 JAX-RS 1.1 默认的提供者。在这个版本的WebLogic,JAX-RS 2.0 (使用 Jersey 2.5.1)为一个支持可选安装共享库。请通读 WebLogic 12.1.3 RESTful Web Services Development Guide,里面详细说明了在 WebLogic 12.1.3 如何启用 JAX-RS 2.0

    第三方 Java EE 应用服务器通常附带一个 JAX-RS 实现。如果您想要使用Jersey 而不是默认的 JAX-RS 提供者,您需要将J ersey 库添加到您的类路径和禁用默认的 JAX-RS 提供者的容器。